package com.quan.mall.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import com.baomidou.mybatisplus.annotation.IdType;

import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import javax.validation.constraints.NotNull;
import com.quan.commons.core.bean.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 会员-优惠券信息
 *
 * @author yhaoquan
 * @email yhaoquan@163.com
 * @date 2021-07-15 14:57:19
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("ums_coupon")
public class UmsCoupon extends BaseEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * id
	 */
    @TableId(type = IdType.AUTO)
    private Long id;

	/**
	 * 优惠卷类型[0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券]
	 */
    private Integer couponType;

	/**
	 * 优惠券图片
	 */
    private String couponImg;

	/**
	 * 优惠卷名字
	 */
    private String couponName;

	/**
	 * 数量
	 */
    private Integer num;

	/**
	 * 金额
	 */
    private BigDecimal amount;

	/**
	 * 每人限领张数
	 */
    private Integer perLimit;

	/**
	 * 使用门槛
	 */
    private BigDecimal minPoint;

	/**
	 * 开始时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

	/**
	 * 结束时间
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

	/**
	 * 使用类型[0->全场通用；1->指定分类；2->指定商品]
	 */
    private Integer useType;

	/**
	 * 备注
	 */
    private String note;

	/**
	 * 发行数量
	 */
    private Integer publishCount;

	/**
	 * 已使用数量
	 */
    private Integer useCount;

	/**
	 * 领取数量
	 */
    private Integer receiveCount;

	/**
	 * 可以领取的开始日期
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enableStartTime;

	/**
	 * 可以领取的结束日期
	 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enableEndTime;

	/**
	 * 优惠码
	 */
    private String code;

	/**
	 * 可以领取的会员等级[0->不限等级，其他-对应等级]
	 */
    private Integer memberLevel;

	/**
	 * 发布状态[0-未发布，1-已发布]
	 */
    private Integer publish;


}
